package com.sz.biz.logistics.core.service;

import com.sz.biz.logistics.core.entity.PriceCombo;
import com.sz.biz.logistics.core.entity.PriceComboQuotation;
import com.sz.biz.logistics.core.dto.PriceComboDto;
import com.sz.common.base.dto.QResultDto;
import com.sz.common.base.dto.QueryParams;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * Function: 价格套餐service <br>
 * Author: hpeng.wang <br>
 * Date: 2017-04-18 16:37:00
 */
public interface PriceComboService {
    /**
     * 新增
     *
     * @param dto 新增的实体dto
     * @return 新增是否成功
     */
    Integer save(PriceComboDto dto) throws ParseException;


    /**
     * 根据id集合删除实体
     *
     * @param uids id集合
     */
    void batchDelete(List<String> uids);

    /**
     * 更新实体
     *
     * @param dto 更新的实体
     */
    Integer update(PriceComboDto dto);

    /**
     * 根据id查询dto信息
     *
     * @param uid 产品id
     * @return 价格套餐dto
     */
    PriceComboDto findDtoByUid(String uid);

    PriceCombo findById(Integer id);

    String findNameByCode(String code);

    /**
     * 查询价格套餐列表，供别的程序调用
     *
     * @return
     */
    Map<String, String> findCombos();

    /**
     * 根据集合信息查询数据
     *
     * @param params 查询的参数集
     * @return 查询出的数据
     */
    QResultDto findDtoByParam(QueryParams params);


    /**
     * 根据条件查询相应的明细信息
     *
     * @param code code
     * @return 查询的分区信息 与区item
     */
    List<PriceComboQuotation> findPriceQuotation(String code);


    /**
     * 校验code是否存在
     *
     * @param id
     * @param code
     */
    void checkCode(Integer id, String code);


}
